[Amazon FSx for NetApp ONTAP] ファイル共有のACLでReadのみの明示的なDenyをONTAPが認識できるのか確認してみた
ONTAP上では No Access と表現されているけどReadのみの明示的なDenyって設定できるのだとうか
こんにちは、のんピ(@non____97)です。
皆さんはしたいなと思ったことはありますか? 私はあります。
以下記事で紹介しているとおり、ONTAPではReadのみやRead/Changeのみの明示的なDenyはできません。全てNo Acceessと設定することになります。
そのため、仮にReadのみの明示的なDenyを設定したい場合はONTAP CLIやONTAP REAST APIではなく、MMCスナップインなどから設定変更することになります。
この場合、ONTAPとしてReadのみの明示的なDenyを受け付け、認識してくれるのでしょうか。
実際に試してみます。
なお、私個人としてはReadやChangeは拒否して、所有者やアクセス権の変更を暗黙的に許可するシチュエーションやメリットは思いつきません。Readが拒否されているのであれば、他の操作も拒否される形(= Full ControlでDeny)でも良いのではと考えます。
いきなりまとめ
- ONTAP上でもファイル共有のACLでReadのみの明示的なDenyは認識できる
- 内部的にアクセスマスクが変わる
やってみた
ファイル共有の作成
早速やってみましょう。
AD DCについては以下記事の検証で使用したものを流用します。
SMBサーバーがドメインに参加していることを確認して、ファイル共有を作成します。
::> set diag
Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y
FsxId01ca0ec2962673930::*> cifs show -instance
Vserver: svm
CIFS Server NetBIOS Name: SHARE-TEST
NetBIOS Domain/Workgroup Name: CORP
Fully Qualified Domain Name: CORP.NON-97.NET
Organizational Unit: OU=FSxForONTAP,DC=corp,DC=non-97,DC=net
Default Site Used by LIFs Without Site Membership:
Workgroup Name: -
Kerberos Realm: -
Authentication Style: domain
CIFS Server Administrative Status: up
CIFS Server Description:
List of NetBIOS Aliases: -
FsxId01ca0ec2962673930::*> cifs share show
Vserver Share Path Properties Comment ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm c$ / oplocks - BUILTIN\Administrators / Full Control
browsable
changenotify
show-previous-versions
svm ipc$ / browsable - -
2 entries were displayed.
::*> volume show -fields security-style, junction-path
vserver volume security-style junction-path
------- -------- -------------- -------------
svm svm_root unix /
svm vol1 unix /vol1
svm vol_smb ntfs /vol_smb
3 entries were displayed.
::*> cifs share create -vserver svm -share-name smb-share -path /vol_smb
FsxId01ca0ec2962673930::*> cifs share show
Vserver Share Path Properties Comment ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm c$ / oplocks - BUILTIN\Administrators / Full Control
browsable
changenotify
show-previous-versions
svm ipc$ / browsable - -
svm smb-share /vol_smb oplocks - Everyone / Full Control
browsable
changenotify
show-previous-versions
3 entries were displayed.
作成したファイル共有のACLを確認します。
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share
Share User/Group User/Group Access
Vserver Name Name Type Permission
-------------- ----------- --------------------------- ----------- -----------
svm smb-share Everyone windows Full_Control
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share -instance
Vserver: svm
Share Name: smb-share
User/Group Name: Everyone
User or Group Type: windows
Access Type: Full_Control
Windows SID: S-1-1-0
Access mask: 1f01ff
EveryoneのFull Controlが付与されていますね。
No AccessのACEの設定
それではNo AccessのACEを追加します。
test-user01
というドメインユーザーに対して設定します。
::*> cifs share access-control create -share smb-share -user-or-group CORP\test-user01 -user-group-type windows -permission No_access
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share
Share User/Group User/Group Access
Vserver Name Name Type Permission
-------------- ----------- --------------------------- ----------- -----------
svm smb-share CORP\test-user01 windows No_access
svm smb-share Everyone windows Full_Control
2 entries were displayed.
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share -instance
Vserver: svm
Share Name: smb-share
User/Group Name: CORP\test-user01
User or Group Type: windows
Access Type: No_access
Windows SID: S-1-5-21-38571244-2121234638-1230449559-1606
Access mask: 1f01ff
Vserver: svm
Share Name: smb-share
User/Group Name: Everyone
User or Group Type: windows
Access Type: Full_Controlー
Windows SID: S-1-1-0
Access mask: 1f01ff
2 entries were displayed.
設定できました。Access mask上ではどちらも1f01ff
です。これはFull Controlを表す際のアクセスマスクです。どうやらDenyの場合もAllowの場合もアクセスマスクは同じようですね。アクセスマスクの詳細は以下NetApp KBとMicrosoft公式ドキュメントをご覧ください。
それでは、ドメインのAdministratorでログインしているWindowsインスタンスでfsmgmt.msc
を起動します。
起動後、FSxN上のSMBサーバーに接続します。
SMBサーバー上のファイル共有一覧から作成したファイル共有を選択し、Share Permissions
を確認します。test-user01
に対してFull ControlでDenyになっていますね。
ReadとChangeのみDeny
ReadとChangeのみDenyにした場合、ONTAP上ではどのように認識されるのか確認します。
test-user01
に対してReadとChangeをDenyするように設定変更します。
設定変更後、ONTAP CLIから様子を見ます。
::*> cifs share access-control show -share smb-share
Share User/Group User/Group Access
Vserver Name Name Type Permission
-------------- ----------- --------------------------- ----------- -----------
svm smb-share CORP\test-user01 windows No_access
svm smb-share Everyone windows Full_Control
2 entries were displayed.
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share -instance
Vserver: svm
Share Name: smb-share
User/Group Name: CORP\test-user01
User or Group Type: windows
Access Type: No_access
Windows SID: S-1-5-21-38571244-2121234638-1230449559-1606
Access mask: 1301bf
Vserver: svm
Share Name: smb-share
User/Group Name: Everyone
User or Group Type: windows
Access Type: Full_Control
Windows SID: S-1-1-0
Access mask: 1f01ff
2 entries were displayed.
アクセスマスクが1301bf
に変わっていました。Access TypeとしてはNo Accessのままですが、内部的には正しく認識してくれていそうです。
ReadのみDenyにした場合
ReadのみDenyにした場合も確認します。
test-user01
に対してReadをDenyするように設定変更します。
ONTAP CLIから様子を見ます。
::*> cifs share access-control show -share smb-share
Share User/Group User/Group Access
Vserver Name Name Type Permission
-------------- ----------- --------------------------- ----------- -----------
svm smb-share CORP\test-user01 windows No_access
svm smb-share Everyone windows Full_Control
2 entries were displayed.
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share -instance
Vserver: svm
Share Name: smb-share
User/Group Name: CORP\test-user01
User or Group Type: windows
Access Type: No_access
Windows SID: S-1-5-21-38571244-2121234638-1230449559-1606
Access mask: 1200a9
Vserver: svm
Share Name: smb-share
User/Group Name: Everyone
User or Group Type: windows
Access Type: Full_Control
Windows SID: S-1-1-0
Access mask: 1f01ff
2 entries were displayed.
今度はアクセスマスクが1200a9
に変わっていますね。問題なさそうです。
アクセスマスクをONTAP CLIで設定できるか
アクセスマスクはONTAP CLIから設定できるのでしょうか。気になってきました。
残念ながらできません。ファイル共有のACLを変更するコマンドを確認しましたが、アクセスマスクを指定するオプションはありませんでした。
::*> cifs share access-control create ?
[ -vserver <vserver name> ] Vserver (default: svm)
[-share] <Share> Share Name
[-user-or-group] <TextNoCase> User/Group Name
[ -user-group-type {windows|unix-user|unix-group} ] User or Group Type (default: windows)
[-permission] <access rights> Access Type
FsxId01ca0ec2962673930::*> cifs share access-control modify ?
[ -vserver <vserver name> ] Vserver (default: svm)
[-share] <Share> Share Name
[-user-or-group] <TextNoCase> User/Group Name
[ -user-group-type {windows|unix-user|unix-group} ] User or Group Type (default: windows)
[[-permission] <access rights>] Access Type
[ -winsid <windows sid> ] Windows SID
FsxId01ca0ec2962673930::*> cifs share access-control modify -permission ?
No_access No access
Read Read
Change Change
Full_Control Full Control
MMCスナップインからACEを追加した場合
最後にMMCスナップインからACEを追加した場合も確認します。
test-user02
に対するReadとChangeのDenyをするACEを追加しました。
ONTAP CLIから様子を見ます。
::*> cifs share access-control show -share smb-share
Share User/Group User/Group Access
Vserver Name Name Type Permission
-------------- ----------- --------------------------- ----------- -----------
svm smb-share CORP\test-user01 windows No_access
svm smb-share CORP\test-user02 windows No_access
svm smb-share Everyone windows Full_Control
3 entries were displayed.
FsxId01ca0ec2962673930::*> cifs share access-control show -share smb-share -instance
Vserver: svm
Share Name: smb-share
User/Group Name: CORP\test-user01
User or Group Type: windows
Access Type: No_access
Windows SID: S-1-5-21-38571244-2121234638-1230449559-1606
Access mask: 1200a9
Vserver: svm
Share Name: smb-share
User/Group Name: CORP\test-user02
User or Group Type: windows
Access Type: No_access
Windows SID: S-1-5-21-38571244-2121234638-1230449559-1607
Access mask: 1301bf
Vserver: svm
Share Name: smb-share
User/Group Name: Everyone
User or Group Type: windows
Access Type: Full_Control
Windows SID: S-1-1-0
Access mask: 1f01ff
3 entries were displayed.
test-user02
に対してNo Accessでアクセスマスクが1301bf
と意図したものになっていますね。
ファイル共有に対してReadのみ、ReadとChangeのみDenyしたい場合は手動で設定変更をしよう
ファイル共有のACLでReadのみの明示的なDenyをONTAPが認識できるのか確認しました。
答えとしては問題なく認識できます。
ただし、ONTAP CLIやONTAP REST APIでは操作できないため、ファイル共有に対してReadのみ、ReadとChangeのみDenyしたい場合は手動で設定変更をしましょう。
なお、ChangeのみDenyというのはMMCスナップイン等GUIからはできません。Changeのチェックボックスにチェックを入れると、自動でReadのチェックボックスにもチェックが入ります。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!